package commons.utils.facades;

import org.eclipse.swt.events.MouseMoveListener;
import org.eclipse.swt.events.MouseTrackListener;
import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.widgets.Control;

import commons.utils.facades.ListenerFacade;
import commons.utils.facades.internal.FacadeFactory;

public abstract class ListenerFacade {

    private static final ListenerFacade _INSTANCE = FacadeFactory.createFacade(ListenerFacade.class);

    public static ListenerFacade getDefault() {
        return _INSTANCE;
    }

    public abstract void addMouseTrackListener(Control control, MouseTrackListener listener);

    public abstract void addMouseMoveListener(Control control, MouseMoveListener listener);

    public abstract void addPaintListener(Control control, PaintListener listener);

    public abstract void removeMouseTrackListener(Control control, MouseTrackListener listener);

    public abstract void removeMouseMoveListener(Control control, MouseMoveListener listener);

    public abstract void removePaintListener(Control control, PaintListener listener);

}
